package com.casa_apoio.model.dao;

import com.casa_apoio.model.entity.Funcionario;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

public class FuncionarioDAO<T> extends HibernateDAO<T> {

    public FuncionarioDAO(Class<T> classe, Session session) {
        super(classe, session);
    }

    public List<Funcionario> listarFuncionarios() {
        Criteria criterio = criaCriteria();
        criterio.setMaxResults(8).addOrder(Order.asc("nome"));
        List<Funcionario> lista = criterio.list();
        return lista;
    }

    public List<Funcionario> listarFuncionariosAtivos() {
        Criterion filtro = Restrictions.eq("ativo", true);
        Criteria criterio = criaCriteria();
        criterio.addOrder(Order.asc("nome")).add(filtro);
        List<Funcionario> lista = criterio.list();
        return lista;
    }

    public List<Funcionario> pesquisarFucionario(String value) {
        Criterion filtro = Restrictions.like("nome", value + "%");
        Criteria criterio = criaCriteria();
        criterio.addOrder(Order.asc("nome")).setMaxResults(8).add(filtro);
        List<Funcionario> lista = criterio.list();
        return lista;
    }
}
